A computer network is a collection of interconnected computing devices that can exchange data and share resources. A variety of devices operate to facilitate communication between the computing devices. For example, a computer network may include routers, switches, gateways, firewalls, and a variety of other devices to provide and facilitate network communication.
These network devices typically include mechanisms, such as management interfaces, for locally or remotely configuring the devices. By interacting with the management interface, a client can perform configuration tasks as well as perform operational commands to collect and view operational data of the managed devices. For example, the clients may configure interface cards of the device, adjust parameters for supported network protocols, specify physical components within the device, modify routing information maintained by a router, access software modules and other resources residing on the device, and perform other configuration tasks. In addition, the clients may allow a user to view current operating parameters, system logs, information related to network connectivity, network activity or other status information from the devices as well as view and react to event information received from the devices.
Network services often require configuration of multiple distinct devices, such as routers with service cards and/or dedicated service devices. Such services include connectivity services such as Layer Three Virtual Private Network (L3VPN), Virtual Private Local Area Network Service (VPLS), and Peer to Peer (P2P) services. Other services include network configuration services, such as Dot1q VLAN Service. Network Management (NM) Systems may support these services such that an administrator can easily create and manage these high level network services. In most of the network service provider deployments, the number of deployed connectivity services are in thousands to millions. When the services are changed, the NM System typically deploys configuration changes throughout the network. In some cases, there may be concurrent changes across the devices within the network, as multiple administrators or management systems may attempt to modify the network services in parallel.
NMS devices in a network typically configure multiple devices in the network to perform coordinated end-to-end services. To keep the devices functional for a service and to avoid disruption of existing services, transactional semantics may be used. Transaction semantics are required when the same device configuration is altered in a concurrent manner. Examples of concurrent configuration cases include: more than one NMS device managing configuration of the same managed device; manual configuration changes by a human operator directly on the device while the device is being managed by a NMS (sometimes referred to as an out-of-band (OOB) configuration change); and a single management system concurrently enabling multiple services on the same device.
One option to overcome concurrency issues by transactional means is to lock all the device configuration databases upfront (as explained in RFC 6241), and then commit the configuration to each of the devices sequentially. Based on the outcome of individual commits, an NMS device can choose to roll back the configurations of previously configured network devices. After all devices have been reconfigured, the NMS device may unlock the reconfigured devices.